/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

export interface ApplicationFileInfo {
  /**
   * 应用路径
   */
  applicationPath: string;
  /**
   * 变更前编译产物文件合集
   */
  beforeOfChangeFilePaths: string[];
  /**
   * 变更后编译产物文件合集
   */
  afterOfChangeFilePaths: string[];
}

export interface FileDiffInfo {
  /**
   * 文件名
   */
  fileName:string;

  /**
   * 变更状态
   */
  status: DiffStatus;

  /**
   * 应用名
   */
  appName: string;
}

export enum DiffStatus {
  /**
   * 文件新增
   */
  ADD,
  /**
   * 文件变更
   */
  CHANGE,
  /**
   * 文件删除
   */
  DELETE,
  /**
   * 无变更
   */
  NORMAL,
}

export const diffStatusMap: Map<DiffStatus, string> = new Map ([
  [DiffStatus.ADD, '文件新增'],
  [DiffStatus.CHANGE, '文件变更'],
  [DiffStatus.DELETE, '文件删除'],
  [DiffStatus.NORMAL, '无变更'],
])